//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#ifndef _ArffObject_h__
#define _ArffObject_h__
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#include "ArffAttributeObject.h"
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
class ArffObject { 

  private:
    
    void                          CleanData (void);


  protected:

    String*                       filename;
    
    String*                       comment;
    String*                       relation;
    TListE <ArffAttributeObject>* attributes;
    TListE <String>*              domains;
    int**                         data;
    TListE <String>*              classification;
    
    String*                       toString;

  public:

    ArffObject ();
    ArffObject (const ArffObject&);
    ArffObject (const ArffObject*);

    ~ArffObject ();

    void                          Filename (String* filename);
    void                          Comment (String* comment);
    void                          Relation (String* relation);
    void                          Attributes (TListE <ArffAttributeObject>* attributes);
    void                          Domains (TListE <String>* domains);
    void                          Data (int** data, int size);
    void                          Classification (TListE <String>* classification);

    String*                       Filename (void);
    String*                       Comment (void);
    String*                       Relation (void);
    TListE <ArffAttributeObject>* Attributes (void);
    TListE <String>*              Domains (void);
    int**                         Data (void);
    TListE <String>*              Classification (void);

    bool                          LoadData (void);

    ArffObject                    operator= (const ArffObject& arffObject);

};
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#endif
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
